﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using Datos.Entidades;
using Datos.Fabricas;
using Datos.Entidades.FabricaEntidades;
using Logica.Comandos;
using Logica.FabricaLogica;
using System.Xml;

namespace Pruebas
{
    [TestFixture]
    public class PruebaExportarApuestas
    {
         [TestCase]
        public void ConsultarMetodoExportacion()
        {
            bool res = false; 
            List<Entidad> listaUsuarios = new List<Entidad>();
            Comando comando = FabricaComandoMaquina.CrearComandoListarTodasMaquinas();
            comando.Ejecutar();
            listaUsuarios = comando.ListaEntidad;

            if (listaUsuarios!=null)
            {
                res = true;
                Assert.AreEqual(res, true);
            }
           


        }
        [TestCase]
         public void exportarPendrive()
         {
             string ruta = "C:/PruebaXML/apuestas.xml";
             bool esp = true;
             List<Entidad> listaUsuarios = new List<Entidad>();
             Comando comando = FabricaComandoXML.CrearComandoBuscarXML();

             comando.Ejecutar();
             listaUsuarios = comando.ListaEntidad;
             if (listaUsuarios != null)
             {
                 esp = true;
             }

             XmlTextWriter myXmlTextWriter = new XmlTextWriter(ruta, System.Text.Encoding.UTF8);
             myXmlTextWriter.Formatting = Formatting.Indented;
             myXmlTextWriter.WriteStartDocument(false);
             myXmlTextWriter.WriteStartElement("registroApuestas", null);


             for (int i = 0; i < listaUsuarios.Count; i++)
             {

                 myXmlTextWriter.WriteStartElement("Apuesta");
                 myXmlTextWriter.WriteElementString("idAcceso", null, (listaUsuarios.ElementAt(i) as Acceso).IdAcceso.ToString());
                 myXmlTextWriter.WriteElementString("fecha", null, (listaUsuarios.ElementAt(i) as Acceso).Fecha.ToString());
                 myXmlTextWriter.WriteElementString("hora", null, (listaUsuarios.ElementAt(i) as Acceso).Hora.ToString());
                 myXmlTextWriter.WriteElementString("minuto", (listaUsuarios.ElementAt(i) as Acceso).Min.ToString());
                 myXmlTextWriter.WriteElementString("montoApostado", null, (listaUsuarios.ElementAt(i) as Acceso).MontoApostado.ToString());
                 myXmlTextWriter.WriteElementString("idEvento", null, (listaUsuarios.ElementAt(i) as Acceso).FkIdEvento.ToString());
                 myXmlTextWriter.WriteElementString("idHistorialParticipante", null, (listaUsuarios.ElementAt(i) as Acceso).FkIdHistorialParticipante.ToString());
                 myXmlTextWriter.WriteElementString("idMaquina", null, (listaUsuarios.ElementAt(i) as Acceso).FkIdHistorialParticipante.ToString());
                 myXmlTextWriter.WriteEndElement();
                 Comando comandoModificar = FabricaComandoXML.CrearComandoModificarAcceso((listaUsuarios.ElementAt(i) as Acceso).IdAcceso);
                 comandoModificar.Ejecutar();
             }

             myXmlTextWriter.WriteEndElement();
             myXmlTextWriter.Flush();
             myXmlTextWriter.Close();
             Console.ReadLine();

             Assert.AreEqual(esp, true);
         }
       
   
    }
}
